iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
Modern Web

菜鳥30日自學SASS及SCSS系列 第 23

【D-2 3】進階Sass的數字函數(2)

  • 分享至 

  • xImage
  •  

今日將介紹4種數字函數:
1. abs()函數
2. min()函數
3. max()函數
4. random()函數

1.abs()函數

幫一個數值加上絕對值,使其為正數。

例如:

// scss //
$width1: abs(-1);
div{
    width: $width1;
}

$width2: abs(-2.0);
div{
    width: $width2;
}

$width3: abs(-3%);
div{
    width: $width3;
}

$width4: abs(-4px);
div{
    width: $width4;
}

$width5: abs(-5em);
div{
    width: $width5;
}

$width6: abs(30em/-5);
div{
    width: $width6;
}

$width7: abs(-3in/40px);
div{
    width: $width7;
}

編|
譯| 從以上程式碼得知加上- 負號時,輸出結果皆為正數。
後|
 V

// css //
div {
  width: 1;
}

div {
  width: 2;
}

div {
  width: 3%;
}

div {
  width: 4px;
}

div {
  width: 5em;
}

div {
  width: 6em;
}

div {
  width: 7.2;
}

2.min()函數

在多個數值中取最小值

例如:

// scss //
$width1: min(1,5,10);
div{
    width: $width1;
}

$width2: min(-1,-5,10);
div{
    width: $width2;
}

$width3: min(1px,5px,10px);
div{
    width: $width3;
}

$width4: min(1em,5,10);
div{
    width: $width4;
}

編|
譯| 從以上程式碼得知數值也可加上- 負號
後|
 V

// css //
div {
  width: 1;
}

div {
  width: -5;
}

div {
  width: 1px;
}

div {
  width: 1em;
}

當轉換得值不同單位時,會編譯錯誤。

例如:

// scss //
$width4: min(1em,5px,10);
div{
    width: $width4;
}

編|
譯| em/px 無法被編譯。
後|
 V

Compilation Error
Error: 1em and 10 are incompatible. 

3.max()函數

在多個數值中取最大值

例如:

// scss //
$width1: max(1,5,10);
div{
    width: $width1;
}

$width2: max(-1,-5,10);
div{
    width: $width2;
}

$width3: max(1px,5px,10px);
div{
    width: $width3;
}

$width4: max(1em,5,10);
div{
    width: $width4;
}

編|
譯| 從以上程式碼得知數值也可加上- 負號
後|
 V

// css //
div {
  width: 10;
}

div {
  width: 10;
}

div {
  width: 10px;
}

div {
  width: 10;
}

當轉換得值不同單位時,會編譯錯誤。

例如:

// scss //
$width4: max(1em,5px,10);
div{
    width: $width4;
}

編|
譯| em/px 無法被編譯。
後|
 V

Compilation Error
Error: 1em and 10 are incompatible. 

4.random()函數

隨機數

例如:

// scss //
$width1: random();
div{
    width: $width1;
}

$width2: random(10);
div{
    width: $width2;
}

$width3: random(999);
div{
    width: $width3;
}

$width4: random(50px);
div{
    width: $width4;
}

$width5: random(60em);
div{
    width: $width5;
}

編|
譯| 從以上程式碼得知數值也可限定範圍(大於0)及加上單位
後|
 V

// css //
div {
  width: 0.982962072;
}

div {
  width: 2;
}

div {
  width: 572;
}

div {
  width: 8;
}

div {
  width: 44;
}

須注意限定範圍必須大於0,不包括 負數~0否則編譯將錯誤。

例如:

// scss //
$width6: random(0);
div{
    width: $width6;
}

$width7: random(-10);
div{
    width: $width7;
}

編|
譯| 負值及0無法被讀取。
後|
 V

$width6 Compilation Error
Error: $limit: Must be greater than 0, was 0.

$width7 Compilation Error
Error: $limit: Must be greater than 0, was -10.

上一篇
【D-2 2】進階Sass的數字函數(1)
下一篇
【D-2 4】進階Sass的列表函數(1)
系列文
菜鳥30日自學SASS及SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言